
import dayjs from 'dayjs'
import relativeTime from 'dayjs/plugin/relativeTime';
import 'dayjs/locale/zh-cn'
import toast from "./toast";
import store from "../store";

dayjs.locale('zh-cn') // 全局使用简体中文
dayjs.extend(relativeTime);

export default {
  toast(title,type,duration){
    uni.showToast({
      title,
      icon:type,
      duration
    })
  },
}

export function formatTime(time){
  return dayjs(time*1000).format('YYYY-MM-DD HH:mm')
}
export function formatTimeSimple(time,type){
  if((new Date().getTime()/1000-time)/24/3600>2){
    if(type){
      return dayjs(time*1000).format(type)
    }else{
      return formatTime(time)
    }
  }else{
    return dayjs(time*1000).fromNow()
  }
}

// 路由跳转
export function historyPush(url='/',data=null,isTab=false){
  let path='/';
  // 路由守卫作用   需要登录
  // if((!store.token) ||(store.token&&store.status!==1)){
  //   if(['login', 'reg'].indexOf(url)===-1){//不需要登录就能访问的页面
  //     const page = uni.getCurrentPages();
  //     store.clearToken();
  //     if(page[page.length-1].route!=="pages/login/index"){
  //       uni.navigateTo({url:'/pages/login/index'})
  //     }
  //     return;
  //   }
  // }


  switch (url) {
    case '':
    case '/':
    case 'index':
      // #ifdef MP-WEIXIN
      path = `/pages/index`
      // #endif
      // #ifdef H5
      path = `/pages/my`
      // #endif
      break;
    case 'cutManage':
    case 'eatingManage':
    case 'meetingsManage':
      path = `/subPages/${url}`
      break;
    case 'survey-list':
    case 'survey':
    case 'newsList':
    case 'contact':
    case 'newsDetail':
    case 'unionDetail':
    case 'search':
    case 'questions':
      path = `/extraPages/${url}`
      break;
    default:
      path = `/pages/${url}`
  }
  console.log(path)


  if(data){
    path += "?"
    let arr = []
    for(let i in data){
      arr.push(`${i}=${typeof data[i] ==="string"?data[i]:JSON.stringify(data[i])}`)

    }
    path+=arr.join('&')
  }

  path = encodeURI(path);
  // if(isTab){
  //   uni.switchTab({url:path})
  // }else{
    uni.navigateTo({url:path})
  // }
}

export function historyBack(data) {
  uni.navigateBack();
}
function isJSON(str) {
  if (typeof str === 'string') {
    try {
      let obj=JSON.parse(str);
      return(typeof obj === 'object' && obj)
    } catch(e) {
      return false;
    }
  }
}
export function getRouterParams(key) {
  let params = uni.Current.router?.params;
  if(params){
    if(key){
      if(params[key]&&typeof params[key]==='string'){
        //@ts-ignore
        let newStr = decodeURI(params[key])
        if(isJSON(newStr)){
          return JSON.parse(newStr)
        }else{
          return newStr
        }
      }else{
        return undefined
      }
    }else{
      let obj = {}
      for(let i in params){
        obj[i] = getRouterParams(i)
      }
      return obj
    }
  }else{
    return undefined

  }
}
/**
 *
 * 传视频和图片
 *
 * options 配置,和defaultOptions 相似
 * verify 走微信审核
 * */

export function chooseMedia(options,callback,needCheek=false){
  const defaultOptions={
    count: 9,
    mediaType: ['image','video'],
    sizeType:['compressed'],
    sourceType: ['album', 'camera'],
    maxDuration: 20,
    camera: 'back',
  }
  if(options){
    options = {
      ...defaultOptions,
      ...options
    }
  }
  const BigV = store.userInfo?.BigV;
  const isPro = BigV===1||BigV===2;//高级用户可以上传权限更大
  if(process.env.TARO_ENV==='weapp'){

    wx.chooseMedia({
      ...options,
      async success (file){
        let tempFilePaths = [];
        file.tempFiles.map((item)=>{
          if(isPro){
            if(item.size/1024/1024>100){//只能上传100m以下
              toast.info('图片或视频太大')
              return
            }else if(item.duration>180){//只能上传20s以下
              toast.info('视频不能超过180s')
              return
            }
          }else{
            if(item.size/1024/1024>100){//只能上传100m以下
              toast.info('图片或视频太大')
              return
            }else if(item.duration>20){//只能上传20s以下
              toast.info('视频不能超过20s')
              return
            }
          }
          tempFilePaths.push(item.tempFilePath);
        })
        let type=file.type==='video'?3:1;
        if(tempFilePaths.length>0){
          callback(tempFilePaths,type)
        }
      }
    })
  }else{
    uni.chooseImage({
      count: options.count, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有，在H5浏览器端支持使用 `user` 和 `environment`分别指定为前后摄像头
      success: function (file) {
        // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
        let tempFilePaths = file.tempFilePaths;
        callback(tempFilePaths)
      }
    })
  }
}





export function transImgUrl(str) {
  return  str?str.split(',').map(item=>process.env.BASE_API_URL+item):[]
}
export function replaceImagePre(str) {
  let newStr = str.replace(/https\:\/\/www\.xsdyiwu\.com\/uploads\/image\//g,'')
  newStr = str.replace(/https\:\/\/adn\.xsdyiwu\.com\//g,'')
  return newStr
}

// 防抖
export function debounce(fn, wait) {
  let timeout = null;
  return function() {
    if(timeout !== null)   clearTimeout(timeout);
    timeout = setTimeout(fn, wait);
  }
}
// 传递给上个页面参数
export function setPrevPageData(data) {
  console.log(data)
  if(process.env.TARO_ENV==='weapp'){
    let pages = uni.getCurrentPages(); // 获取当前的页面栈
    let prevPage = pages[pages.length-2]; //  获取上一页面
    prevPage.setData({ //设置上一个页面的值
      data
    });
  }

}
// 获取后面页面传递参数
export function getAfterPageData() {
  if(process.env.TARO_ENV==='weapp'){
    let pages = uni.getCurrentPages();
    let currPage = pages[pages.length - 1]; // 获取当前页面
    if (currPage.__data__.data) { // 获取值
      return currPage.__data__.data
    }
  }
  return null
}
